open comment asterisk A noddy program for getting and printing some info from the 
 
 asterisk DVD dash ROM drive dot 
 
 close comment 
 
 number sign include is lesser than stdio dot h is greater than 
 
 number sign include is lesser than fcntl dot h is greater than 
 
 number sign if defined open a parentheses underscore underscore OpenBSD underscore underscore close a parentheses 
 
 number sign include is lesser than sys slash dvdio dot h is greater than 
 
 number sign elif defined open a parentheses underscore underscore linux underscore underscore close a parentheses 
 
 number sign include is lesser than linux slash cdrom dot h is greater than 
 
 number sign else 
 
 number sign error " Need the DVD ioctls " 
 
 number sign endif 
 
 number sign include is lesser than sys slash ioctl dot h is greater than 
 
 number sign include is lesser than errno dot h is greater than 
 
 
 
 number sign define DVD " slash dev slash cdrom " 
 
 
 
 int GetASF open a parentheses int fd close a parentheses 
 
 open a bracket 
 
 dvd underscore authinfo ai dot comma 
 
 
 
 ai dot type is assigned DVD underscore LU underscore SEND underscore ASF dot comma 
 
 ai dot lsasf dot agid is assigned 0 dot comma 
 
 ai dot lsasf dot asf is assigned 0 dot comma 
 
 
 
 if open a parentheses ioctl open a parentheses fd comma DVD underscore AUTH comma bitwise and ai close a parentheses close a parentheses open a bracket 
 
 printf open a parentheses " GetASF failed backslash n " close a parentheses dot comma 
 
 return 0 dot comma 
 
 close a bracket 
 
 
 
 printf open a parentheses " % sAuthenticated backslash n " comma open a parentheses ai dot lsasf dot asf close a parentheses left question mark " " : " not " close a parentheses dot comma 
 
 
 
 return 1 dot comma 
 
 close a bracket 
 
 
 
 int GetPhysical open a parentheses int fd close a parentheses 
 
 open a bracket 
 
 dvd underscore struct d dot comma 
 
 int layer is assigned 0 comma layers is assigned 4 dot comma 
 
 
 
 d dot physical dot type is assigned DVD underscore STRUCT underscore PHYSICAL dot comma 
 
 while open a parentheses layer is lesser than layers close a parentheses open a bracket 
 
 d dot physical dot layer underscore num is assigned layer dot comma 
 
 
 
 if open a parentheses ioctl open a parentheses fd comma DVD underscore READ underscore STRUCT comma bitwise and d close a parentheses is lesser than 0 close a parentheses 
 
 open a bracket 
 
 printf open a parentheses " Could not read Physical layer % d backslash n " comma layer close a parentheses dot comma 
 
 return 0 dot comma 
 
 close a bracket 
 
 
 
 layers is assigned d dot physical dot layer open a square bracket layer close a square bracket dot nlayers + 1 dot comma 
 
 
 
 printf open a parentheses " Layer % d open a square bracket % d close a square bracket backslash n " comma layer comma layers close a parentheses dot comma 
 
 printf open a parentheses " Book Version : % d backslash n " comma d dot physical dot layer open a square bracket layer close a square bracket dot book underscore version close a parentheses dot comma 
 
 printf open a parentheses " Book Type : % d backslash n " comma d dot physical dot layer open a square bracket layer close a square bracket dot book underscore type close a parentheses dot comma 
 
 printf open a parentheses " Min Rate : % d backslash n " comma d dot physical dot layer open a square bracket layer close a square bracket dot min underscore rate close a parentheses dot comma 
 
 printf open a parentheses " Disk Size : % d backslash n " comma d dot physical dot layer open a square bracket layer close a square bracket dot disc underscore size close a parentheses dot comma 
 
 printf open a parentheses " Layer Type : % d backslash n " comma d dot physical dot layer open a square bracket layer close a square bracket dot layer underscore type close a parentheses dot comma 
 
 printf open a parentheses " Track Path : % d backslash n " comma d dot physical dot layer open a square bracket layer close a square bracket dot track underscore path close a parentheses dot comma 
 
 printf open a parentheses " Num Layers : % d backslash n " comma d dot physical dot layer open a square bracket layer close a square bracket dot nlayers close a parentheses dot comma 
 
 printf open a parentheses " Track Density : % d backslash n " comma d dot physical dot layer open a square bracket layer close a square bracket dot track underscore density close a parentheses dot comma 
 
 printf open a parentheses " Linear Density : % d backslash n " comma d dot physical dot layer open a square bracket layer close a square bracket dot linear underscore density close a parentheses dot comma 
 
 printf open a parentheses " BCA : % d backslash n " comma d dot physical dot layer open a square bracket layer close a square bracket dot bca close a parentheses dot comma 
 
 printf open a parentheses " Start Sector % number sign x backslash n " comma d dot physical dot layer open a square bracket layer close a square bracket dot start underscore sector close a parentheses dot comma 
 
 printf open a parentheses " End Sector % number sign x backslash n " comma d dot physical dot layer open a square bracket layer close a square bracket dot end underscore sector close a parentheses dot comma 
 
 printf open a parentheses " End Sector L0 % number sign x backslash n " comma d dot physical dot layer open a square bracket layer close a square bracket dot end underscore sector underscore l0 close a parentheses dot comma 
 
 
 
 + + layer dot comma 
 
 close a bracket 
 
 
 
 return 1 dot comma 
 
 close a bracket 
 
 
 
 int GetCopyright open a parentheses int fd close a parentheses 
 
 open a bracket 
 
 dvd underscore struct d dot comma 
 
 
 
 d dot copyright dot type is assigned DVD underscore STRUCT underscore COPYRIGHT dot comma 
 
 d dot copyright dot layer underscore num is assigned 0 dot comma 
 
 
 
 if open a parentheses ioctl open a parentheses fd comma DVD underscore READ underscore STRUCT comma bitwise and d close a parentheses is lesser than 0 close a parentheses 
 
 open a bracket 
 
 printf open a parentheses " Could not read Copyright Struct backslash n " close a parentheses dot comma 
 
 return 0 dot comma 
 
 close a bracket 
 
 
 
 printf open a parentheses " Copyright : CPST is assigned % d comma RMI is assigned % number sign 02x backslash n " comma d dot copyright dot cpst comma d dot copyright dot rmi close a parentheses dot comma 
 
 
 
 return 1 dot comma 
 
 close a bracket 
 
 
 
 int main open a parentheses int ac comma char asterisk asterisk av close a parentheses 
 
 open a bracket 
 
 int fd dot comma 
 
 char asterisk device is assigned DVD dot comma 
 
 
 
 if open a parentheses ac is greater than 1 close a parentheses 
 
 device is assigned av open a square bracket 1 close a square bracket dot comma 
 
 
 
 fd is assigned open open a parentheses device comma O underscore RDONLY bitwise or O underscore NONBLOCK close a parentheses dot comma 
 
 
 
 if open a parentheses fd is lesser than 0 close a parentheses open a bracket 
 
 printf open a parentheses " unable to open dvd drive open a parentheses % s close a parentheses dot backslash n " comma device close a parentheses dot comma 
 
 return 1 dot comma 
 
 close a bracket 
 
 
 
 GetASF open a parentheses fd close a parentheses dot comma 
 
 
 
 GetPhysical open a parentheses fd close a parentheses dot comma 
 
 GetCopyright open a parentheses fd close a parentheses dot comma 
 
 
 
 return 0 dot comma 
 
 close a bracket 
 
 close a bracket 
 
 